//app.js
App({
  //登录
  myLogin(userInfo){
    let that = this;
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        if (res.code) {
          console.info (res.code);
          var url = that.globalData.api + "/wechat/user/login";
          var data = {
            code: res.code,
            userName: userInfo.nickName,
            headPortrait: userInfo.avatarUrl
          }
          wx.request({
            url: url,
            data: data,
            method: 'post',
            success: function (res2) {
              console.info(res2.data);
              if (res2.data.code==0){
                //设置全局用户信息
                that.globalData.userInfo = userInfo;
                that.globalData.isUser = true
                //设置openId缓存
                wx.setStorageSync('openId', res2.data.openid);
                if (res2.data.token){
                  wx.setStorageSync('token', res2.data.token);
                }
              }else {
                wx.showToast({
                  title: res2.errMsg,
                  icon: "none"
                })
              }
              
            },
          })
        } else {
          wx.showToast({
            title: "网络错误，请稍后重试~",
            icon: "none"
          })
        }
      }
    })
  },
  //调出重新授权界面
  regetInfo(){
    var that = this;
    wx.openSetting({
      success: function success(res) {
        // console.log('进入了用户信息重复授权');
        //console.info(res.authSetting);
        if (res.authSetting["scope.userInfo"] == true) {
          wx.getUserInfo({
            success: function (data2) {
              //console.info("重复授权===", data2.userInfo);
              //登录
              that.myLogin(data2.userInfo);
            }
          })
        } else {
          //console.info("用户进入了重复授权设置，但是并未授权")
          that.myWarn();
        }
      }
    });
  },
  //提示弹层
  myWarn(){
    var that = this;
    wx.showModal({
      title: '用户未授权',
      content: '如需获取用户联系方式，请按确定并在授权管理中选中“用户信息”，进行授权，最后再重新进入小程序即可正常使用。',
      showCancel: false,
      success: function (res) {
        if (res.confirm) {
          console.log('用户点击确定')
          that.regetInfo();
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },
  onLaunch: function () {
    var that = this;
    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
    var openId = (wx.getStorageSync('openId'));
    // console.info("**********===== " + openId +" =====********");
    //存在openId
    if(openId) {
      wx.getUserInfo({
        success: function (res) {
          //存储用户信息
          that.globalData.userInfo = res.userInfo;
          that.globalData.isUser = true;
          // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回 所以此处加入 callback 以防止这种情况
          if (this.userInfoReadyCallback) {
            this.userInfoReadyCallback(res)
          }
        },
        fail: function () {
          // fail
          console.log("存在openId获取用户信息失败！")
        },
        complete: function () {
          // complete
          console.log("存在openId获取用户信息完成！")
        }
      })
    }else {
      //不存在 1.未授权(判断是否第一次授权，第一次和非第一次) 2.已经授权（直接登录）
      that.globalData.userInfo = null;
      that.globalData.isUser = false;
      // wx.getSetting({
      //   success: res => {
      //     console.info(res.authSetting);
      //     //无用户信息 
      //     if (!res.authSetting["scope.userInfo"]) {
      //       if (res.authSetting["scope.userInfo"]===false){
      //         console.info("非第一次授权");
      //         //非第一次授权
      //         that.myWarn();
      //       }else{
      //         //第一次授权
      //         console.info("第一次授权");
      //         wx.authorize({
      //           scope: 'scope.userInfo',
      //           success: (resp) => {
      //             console.info(resp)
      //             //获取用户信息
      //             wx.getUserInfo({
      //               success: function (res) {
      //                 //登录
      //                 that.myLogin(res.userInfo);
      //               }
      //             })
      //           },
      //           fail: () => {
      //             console.info('拒绝授权个人信息');
      //             //拒绝授权的弹框提示
      //             that.myWarn();
      //           }
      //         })
      //       }
            
      //     }else{
      //       // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
      //       wx.getUserInfo({
      //         success: res => {
      //           //直接登录
      //           that.myLogin(res.userInfo);
      //           // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
      //           // 所以此处加入 callback 以防止这种情况
      //           if (this.userInfoReadyCallback) {
      //             this.userInfoReadyCallback(res)
      //           }
      //         }
      //       })
      //     }
      //   }
      // })
    }
  },
  //在页面用app.globalData.buildUrl来获取 生产地址
  globalData: {
    userInfo: null,//用户信息
    isUser: false,//有用户信息false,无用户信息true
    hasLocation: false,
    location: {},//地理位置
    calcParameters: {},//票据详情传给计算器的参数
    calcContent: {},//计算器给计算详情
    api: "https://www.piao360.net",//
    buildUrl:"https://www.piao360.net",//生产地址
    devUrl:"https://test.piao360.net",//开发测试地址
  }
})